2
תגובות
זה שאילתה די פשוטה, אני אישית לא למדתי איך עושים אותה, אשמח אם תלמדו אותי:
יש לי טבלה בשם likes, שם יש עמודות בשם: game_id, time, type (השאר לא קריטיות כעת).
כביכול, כל מי שעשה לייק/דיסלייק למשחק (זה אתר משחקים), אז זה נכנס למסד. נרשם מה הID של המשחק, הזמן הנוכחי של הלייק, וסוג הלייק(לייק/דיסלייק).
אני רוצה לעשות שאילתה שתשלוף לי את 10 game_id (הגבלה של 10 משחקים) שעשו להם כמה שיותר לייקים בשבוע האחרון.
לבינתים עשיתי את זה, אבל אני לא יודע איך לעשות במדויק את השאילתה שהסברתי:
SELECT `game_id` FROM `likes` WHERE `type` = 'like' AND `time` > '{$time}'
המשתנה time שווה לזמן הנוכחי פחות שבוע (60*60*24*7)
אשמח לעזרה.
יש לי טבלה בשם likes, שם יש עמודות בשם: game_id, time, type (השאר לא קריטיות כעת).
כביכול, כל מי שעשה לייק/דיסלייק למשחק (זה אתר משחקים), אז זה נכנס למסד. נרשם מה הID של המשחק, הזמן הנוכחי של הלייק, וסוג הלייק(לייק/דיסלייק).
אני רוצה לעשות שאילתה שתשלוף לי את 10 game_id (הגבלה של 10 משחקים) שעשו להם כמה שיותר לייקים בשבוע האחרון.
לבינתים עשיתי את זה, אבל אני לא יודע איך לעשות במדויק את השאילתה שהסברתי:
SELECT `game_id` FROM `likes` WHERE `type` = 'like' AND `time` > '{$time}'
המשתנה time שווה לזמן הנוכחי פחות שבוע (60*60*24*7)
אשמח לעזרה.
2 תשובות
ענה
iiddaannyy
ב
24 למאי 2013
#
SELECT `game_id`, COUNT(`game_id`) AS `likes`
FROM `likes`
WHERE `type`='like' AND `time` > UNIX_TIMESTAMP() - 7*24*60*60
GROUP BY `game_id`
ORDER BY `likes` DESC
LIMIT 10
FROM `likes`
WHERE `type`='like' AND `time` > UNIX_TIMESTAMP() - 7*24*60*60
GROUP BY `game_id`
ORDER BY `likes` DESC
LIMIT 10